home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #2 / Monster Media No. 2 (Monster Media)(1994).ISO / pcboard / ppepakts.zip / BJ.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-05-30  |  28KB  |  1,338 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Date     TDATE001(1000)
  20.     Integer  INTEGER001
  21.     Integer  TINTEGER002(12)
  22.     Integer  TINTEGER003(12)
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  INTEGER009
  29.     Integer  INTEGER010
  30.     Integer  INTEGER011
  31.     Integer  INTEGER012
  32.     Integer  INTEGER013
  33.     Integer  TINTEGER014(12)
  34.     Integer  TINTEGER015(12)
  35.     Integer  INTEGER016
  36.     Integer  INTEGER017
  37.     Integer  INTEGER018
  38.     Integer  INTEGER019
  39.     Integer  INTEGER020
  40.     Integer  INTEGER021
  41.     Integer  INTEGER022
  42.     Integer  INTEGER023
  43.     Integer  INTEGER024
  44.     Integer  INTEGER025
  45.     Integer  INTEGER026
  46.     Money    TMONEY001(1000)
  47.     Money    MONEY002
  48.     Money    MONEY003
  49.     Money    MONEY004
  50.     Money    MONEY005
  51.     Money    MONEY006
  52.     String   STRING001
  53.     String   STRING002
  54.     String   TSTRING003(1000)
  55.     String   STRING004
  56.     String   STRING005
  57.     String   TSTRING006(12)
  58.     String   TSTRING007(12)
  59.     String   STRING008
  60.     String   STRING009
  61.     String   STRING010
  62.     String   STRING011
  63.     String   STRING012
  64.     String   STRING013
  65.     String   STRING014
  66.     String   STRING015
  67.     String   STRING016
  68.     String   STRING017
  69.     String   STRING018
  70.  
  71. ;------------------------------------------------------------------------------
  72.  
  73.     Cls
  74.     STRING008 = " A 2 3 4 5 6 7 8 910 J Q K A 2 3 4 5 6 7 8 910 J Q K A 2 3 4 5 6 7 8 910 J Q K A 2 3 4 5 6 7 8 910 J Q K"
  75.     STRING010 = "01020304050607080910101010010203040506070809101010100102030405060708091010101001020304050607080910101010"
  76.     STRING002 = "YES"
  77.     Gosub LABEL022
  78.     If (INTEGER001 <> 942702) Then
  79.         Gosub LABEL030
  80.     Else
  81.         Gosub LABEL029
  82.     Endif
  83.     GetUser
  84.     Gosub LABEL027
  85.     Newline
  86.     If (STRING004 == "YES") Then
  87.         STRING015 = "N"
  88.     Else
  89.         STRING015 = "Y"
  90.     Endif
  91.     InputYN "Would like the instructions/rules", STRING015, 14
  92.     If (STRING015 <> YesChar()) Then
  93.         Goto LABEL001
  94.     Else
  95.         Goto LABEL031
  96.     Endif
  97.     :LABEL001
  98.     STRING017 = Time()
  99.     STRING016 = "Started BLACKJACK at "
  100.     Log STRING016 + STRING017, 1
  101.     Cls
  102.     AnsiPos 17, 1
  103.     Print "@X0DB  L  A  C  K  J  A  C  K"
  104.     AnsiPos 1, 1
  105.     Print "@X03Dealer"
  106.     AnsiPos 1, 2
  107.     Print "@X0E┌─────┐┌─────┐"
  108.     AnsiPos 1, 3
  109.     Print "@X0E│     ││     │"
  110.     AnsiPos 1, 4
  111.     Print "@X0E│@X80     @X0E││@X80     @X0E│"
  112.     AnsiPos 1, 5
  113.     Print "@X0E│     ││     │"
  114.     AnsiPos 1, 6
  115.     Print "@X0E└─────┘└─────┘"
  116.     AnsiPos 1, 8
  117.     PrintLn "@X03@FIRST@"
  118.     AnsiPos 1, 9
  119.     Print "@X0B┌─────┐┌─────┐"
  120.     AnsiPos 1, 10
  121.     Print "@X0B│     ││     │"
  122.     AnsiPos 1, 11
  123.     Print "@X0B│@X80     @X0B││@X80     @X0B│"
  124.     AnsiPos 1, 12
  125.     Print "@X0B│     ││     │"
  126.     AnsiPos 1, 13
  127.     Print "@X0B└─────┘└─────┘"
  128.     AnsiPos 58, 1
  129.     Print "@X0BStatistics"
  130.     AnsiPos 44, 2
  131.     Print "@X78┌───────────────────────┬─────────┐"
  132.     AnsiPos 44, 3
  133.     Print "@X78│         @X75Money@X78         │@X75Min. left@X78│@X08█"
  134.     AnsiPos 44, 4
  135.     Print "@X78│              @X7E", Right(MONEY002, 8), " @X78│@X7E", Right(MinLeft(), 6), "   @X78│@X08█"
  136.     AnsiPos 44, 5
  137.     Print "@X78├───────────┬───────────┼─────────┤█"
  138.     AnsiPos 44, 6
  139.     Print "@X78│ @X75Insurance@X78 │ @X75Bet Hand1@X78 │@X75Bet Hand2@X78│@X08█"
  140.     AnsiPos 44, 7
  141.     Print "@X78│           │           │         │@X08█"
  142.     AnsiPos 44, 8
  143.     Print "@X78└───────────┴───────────┴─────────┘@X08█"
  144.     AnsiPos 44, 9
  145.     Print "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  146.     AnsiPos 44, 10
  147.     Print "@X78┌─────────────────────────────────┐"
  148.     AnsiPos 44, 11
  149.     Print "@X78│                                 │@X08█"
  150.     AnsiPos 44, 12
  151.     Print "@X78└─────────────────────────────────┘@X08█"
  152.     AnsiPos 44, 13
  153.     Print "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  154.     AnsiPos 44, 14
  155.     Print "@X78┌─────────────────────────────────┐"
  156.     AnsiPos 44, 15
  157.     Print "@X78│                                 │@X08█"
  158.     AnsiPos 44, 16
  159.     Print "@X78├────────────────┬────────────────┤@X08█"
  160.     AnsiPos 44, 17
  161.     Print "@X78│     @X75Dealer@X78     │      @X75You@X78       │@X08█"
  162.     AnsiPos 44, 18
  163.     Print "@X78│                │                │@X08█"
  164.     AnsiPos 44, 19
  165.     Print "@X78└────────────────┴────────────────┘@X08█"
  166.     AnsiPos 44, 20
  167.     Print "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
  168.     :LABEL002
  169.     Gosub LABEL023
  170.     AnsiPos 59, 4
  171.     Print "@X7E", Right(MONEY002, 8)
  172.     AnsiPos 69, 4
  173.     Print "@X7E", Right(MinLeft(), 6)
  174.     AnsiPos 46, 7
  175.     Print "@X77", Space(9)
  176.     AnsiPos 59, 7
  177.     Print "@X77", Space(9)
  178.     AnsiPos 69, 7
  179.     Print "@X77", Space(9)
  180.     :LABEL003
  181.     STRING018 = ""
  182.     STRING013 = "HAND1"
  183.     STRING014 = "N"
  184.     MONEY006 = 0
  185.     MONEY004 = 0
  186.     INTEGER005 = 0
  187.     STRING009 = "NO"
  188.     STRING011 = "None"
  189.     INTEGER016 = 2
  190.     INTEGER017 = 2
  191.     INTEGER024 = 8
  192.     INTEGER019 = 0
  193.     INTEGER020 = 0
  194.     AnsiPos 46, 11
  195.     InputStr "Bet ($1 min) or (Q)uit", STRING018, 126, 5, " QDMCNF.1234567890", 8
  196.     If (STRING018 == "") Then
  197.         Goto LABEL003
  198.     Endif
  199.     AnsiPos 46, 11
  200.     Print "@X7E", Space(30), "@X0E"
  201.     AnsiPos 50, 15
  202.     Print "@X7B", Space(27), "@X0E"
  203.     AnsiPos 52, 18
  204.     Print "@X7C", Space(2), "@X0E"
  205.     AnsiPos 66, 18
  206.     Print "@X7C", Space(7), "@X0E"
  207.     If ((STRING018 == "D") && ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec()))) Then
  208.         Cls
  209.         DispFile PPEPath() + "BJ.dat", 2 + 1 + 4
  210.         Wait
  211.         Goto LABEL001
  212.     Endif
  213.     If ((STRING018 == "M") && ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec()))) Then
  214.         Cls
  215.         InputText "Change dollar amount", MONEY002, 14, 7
  216.         Newline
  217.         Wait
  218.         Goto LABEL001
  219.     Endif
  220.     If ((STRING018 == "CNF") && ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec()))) Then
  221.         Cls
  222.         InputText "Change BBS name", STRING001, 14, 45
  223.         Newline
  224.         InputText "Change verfication #", INTEGER001, 14, 6
  225.         Newline
  226.         InputText "Change starting bet", MONEY003, 14, 7
  227.         Newline
  228.         FOpen 0, PPEPath() + "BJ.cnf", 1, 0
  229.         FPutLn 0, STRING001
  230.         FPutLn 0, INTEGER001
  231.         FPutLn 0, MONEY003
  232.         FClose 0
  233.         Wait
  234.         Goto LABEL001
  235.     Endif
  236.     If (STRING018 == "Q") Then
  237.         Goto LABEL021
  238.     Endif
  239.     MONEY004 = S2I(STRING018, 10)
  240.     MONEY004 = MONEY004 * 100
  241.     If (MONEY004 > MONEY002) Then
  242.         AnsiPos 1, 19
  243.         Print "@X09You don't have ", MONEY004, " to bet."
  244.         Goto LABEL003
  245.     Endif
  246.     If (MONEY004 <= 0) Then
  247.         Goto LABEL003
  248.     Endif
  249.     AnsiPos 59, 7
  250.     Print "@X74", Right(MONEY004, 8), "@X0E"
  251.     Gosub LABEL026
  252.     AnsiPos 1, 17
  253.     Print "@X8DDealing cards . . . ."
  254.     Gosub LABEL015
  255.     Gosub LABEL018
  256.     Gosub LABEL019
  257.     AnsiPos 1, 17
  258.     Print "@X0E                       "
  259.     STRING002 = ""
  260.     If ((TINTEGER014(2) == 1) && (MONEY002 - MONEY004 >= 1)) Then
  261.         STRING015 = "Y"
  262.         AnsiPos 1, 14
  263.         InputYN "Would you like insurance", STRING015, 14
  264.         If (STRING015 == YesChar()) Then
  265.             :LABEL004
  266.             MONEY005 = MONEY002 - MONEY004
  267.             AnsiPos 1, 16
  268.             Print "@X0DYou have ", MONEY005, " to insure with."
  269.             AnsiPos 1, 15
  270.             InputStr "How much ($500 max)", MONEY006, 14, 6, "1234567890", 8
  271.             If (((MONEY006 < 1) || (MONEY006 > MONEY005)) || (MONEY006 > 50000)) Then
  272.                 AnsiPos 1, 15
  273.                 Print Space(43)
  274.                 Goto LABEL004
  275.             Endif
  276.             AnsiPos 1, 14
  277.             Print Space(43)
  278.             AnsiPos 1, 15
  279.             Print Space(43)
  280.             AnsiPos 1, 16
  281.             Print Space(43)
  282.             AnsiPos 46, 7
  283.             Print "@X74", Right(MONEY006, 7), "@X0E"
  284.             Goto LABEL005
  285.             Goto LABEL005
  286.         Endif
  287.         AnsiPos 1, 14
  288.         Print Space(43)
  289.         MONEY006 = 0
  290.         Goto LABEL005
  291.     Endif
  292.     :LABEL005
  293.     Gosub LABEL010
  294.     If (MONEY006 > 0) Then
  295.         MONEY002 = MONEY002 - MONEY006
  296.         AnsiPos 46, 7
  297.         Print "@X74(", Right(MONEY006, 7), ")@X0E"
  298.     Endif
  299.     :LABEL006
  300.     AnsiPos 1, 14
  301.     Print "@X0DYour hand = ", INTEGER013
  302.     AnsiPos 1, 16
  303.     If ((Mid(TSTRING007(1), 5, 2) == Mid(TSTRING007(2), 5, 2)) && (MONEY004 * 2 <= MONEY002)) Then
  304.         InputStr "What would you like to do (H,S,SP,D)", STRING002, 14, 2, "HSPD", 8
  305.     ElseIf ((Mid(TSTRING007(1), 5, 2) == Mid(TSTRING007(2), 5, 2)) && (MONEY004 * 2 > MONEY002)) Then
  306.         InputStr "What would you like to do (H,S)", STRING002, 14, 1, "HS", 8
  307.     ElseIf (MONEY004 * 2 <= MONEY002) Then
  308.         InputStr "What would you like to do (H,S,D)", STRING002, 14, 1, "HSD", 8
  309.     Else
  310.         InputStr "What would you like to do (H,S)", STRING002, 14, 1, "HS", 8
  311.     Endif
  312.     AnsiPos 1, 14
  313.     Print Space(43)
  314.     AnsiPos 1, 16
  315.     Print Space(43)
  316.     :LABEL007
  317.     If (((STRING002 == "SP") && (Mid(TSTRING007(1), 5, 2) == Mid(TSTRING007(2), 5, 2))) && (MONEY004 * 2 <= MONEY002)) Then
  318.         STRING014 = "Y"
  319.     Else
  320.         If (STRING002 == "H") Then
  321.             Gosub LABEL013
  322.             Goto LABEL006
  323.         Endif
  324.         If (STRING002 == "D") Then
  325.             MONEY004 = MONEY004 * 2
  326.             Gosub LABEL013
  327.             STRING002 = "S"
  328.         Endif
  329.         If (STRING002 == "S") Then
  330.             AnsiPos 3, 4
  331.             Print TSTRING006(1)
  332.             If (INTEGER004 <= 16) Then
  333.                 Gosub LABEL014
  334.             Endif
  335.             Gosub LABEL009
  336.         Else
  337.             Goto LABEL006
  338.         Endif
  339.         :LABEL008
  340.         Gosub LABEL011
  341.         If (MONEY002 == 0) Then
  342.             AnsiPos 1, 21
  343.             Print "@X0EYou are out of money.  Play again tomorrow."
  344.             Delay 90
  345.         Else
  346.             Goto LABEL002
  347.             :LABEL009
  348.             If (STRING014 == "N") Then
  349.                 If (INTEGER004 == INTEGER013) Then
  350.                     STRING009 = "PUSH"
  351.                     Goto LABEL008
  352.                 Endif
  353.                 If (INTEGER004 > INTEGER013) Then
  354.                     STRING009 = "NO"
  355.                     Goto LABEL008
  356.                 Endif
  357.                 If (INTEGER004 < INTEGER013) Then
  358.                     STRING009 = "YES"
  359.                     Goto LABEL008
  360.                 Endif
  361.             Endif
  362.             If ((((STRING014 == "Y") && (INTEGER004 <= 21)) && (INTEGER013 <= 21)) && (INTEGER006 <= 21)) Then
  363.                 If ((INTEGER004 == INTEGER013) && (INTEGER004 == INTEGER006)) Then
  364.                     STRING009 = "TWOPUSH"
  365.                     Goto LABEL008
  366.                 Endif
  367.                 If ((INTEGER004 == INTEGER013) && (INTEGER004 > INTEGER006)) Then
  368.                     STRING009 = "ONEPUSH"
  369.                     Goto LABEL008
  370.                 Endif
  371.                 If ((INTEGER004 > INTEGER013) && (INTEGER004 == INTEGER006)) Then
  372.                     STRING009 = "ONEPUSH"
  373.                     Goto LABEL008
  374.                 Endif
  375.                 If ((INTEGER004 < INTEGER013) && (INTEGER004 == INTEGER006)) Then
  376.                     STRING009 = "ONEPUSHWIN"
  377.                     Goto LABEL008
  378.                 Endif
  379.                 If ((INTEGER004 == INTEGER013) && (INTEGER004 < INTEGER006)) Then
  380.                     STRING009 = "ONEPUSHWIN"
  381.                     Goto LABEL008
  382.                 Endif
  383.                 If ((INTEGER004 > INTEGER013) && (INTEGER004 > INTEGER006)) Then
  384.                     STRING009 = "NO"
  385.                     Goto LABEL008
  386.                 Endif
  387.                 If ((INTEGER004 < INTEGER013) && (INTEGER004 > INTEGER006)) Then
  388.                     STRING009 = "ONEWIN"
  389.                     Goto LABEL008
  390.                 Endif
  391.                 If ((INTEGER004 > INTEGER013) && (INTEGER004 < INTEGER006)) Then
  392.                     STRING009 = "ONEWIN"
  393.                     Goto LABEL008
  394.                 Endif
  395.                 If ((INTEGER004 < INTEGER013) && (INTEGER004 < INTEGER006)) Then
  396.                     STRING009 = "TWOWIN"
  397.                     Goto LABEL008
  398.                 Endif
  399.             Endif
  400.             If ((((STRING014 == "Y") && (INTEGER004 <= 21)) && (INTEGER013 > 21)) && (INTEGER006 <= 21)) Then
  401.                 If (INTEGER004 == INTEGER006) Then
  402.                     STRING009 = "ONEPUSH"
  403.                     Goto LABEL008
  404.                 Endif
  405.                 If (INTEGER004 > INTEGER006) Then
  406.                     STRING009 = "NO"
  407.                     Goto LABEL008
  408.                 Endif
  409.                 If (INTEGER004 < INTEGER006) Then
  410.                     STRING009 = "ONEWIN"
  411.                     Goto LABEL008
  412.                 Endif
  413.             Endif
  414.             If ((((STRING014 == "Y") && (INTEGER004 <= 21)) && (INTEGER013 <= 21)) && (INTEGER006 > 21)) Then
  415.                 If (INTEGER004 == INTEGER013) Then
  416.                     STRING009 = "ONEPUSH"
  417.                     Goto LABEL008
  418.                 Endif
  419.                 If (INTEGER004 > INTEGER013) Then
  420.                     STRING009 = "NO"
  421.                     Goto LABEL008
  422.                 Endif
  423.                 If (INTEGER004 < INTEGER013) Then
  424.                     STRING009 = "ONEWIN"
  425.                     Goto LABEL008
  426.                 Endif
  427.             Endif
  428.             If ((((STRING014 == "Y") && (INTEGER004 <= 21)) && (INTEGER013 > 21)) && (INTEGER006 > 21)) Then
  429.                 STRING009 = "NO"
  430.                 Goto LABEL008
  431.             Endif
  432.             If ((STRING014 == "Y") && (INTEGER004 > 21)) Then
  433.                 If ((INTEGER013 <= 21) && (INTEGER006 > 21)) Then
  434.                     STRING009 = "ONEWIN"
  435.                     Goto LABEL008
  436.                 Endif
  437.                 If ((INTEGER013 > 21) && (INTEGER006 <= 21)) Then
  438.                     STRING009 = "ONEWIN"
  439.                     Goto LABEL008
  440.                 Endif
  441.                 If ((INTEGER013 <= 21) && (INTEGER006 <= 21)) Then
  442.                     STRING009 = "TWOWIN"
  443.                     Goto LABEL008
  444.                 Endif
  445.                 If ((INTEGER013 > 21) && (INTEGER006 > 21)) Then
  446.                     STRING009 = "NO"
  447.                     Goto LABEL008
  448.                 Endif
  449.             Endif
  450.             Return
  451.             :LABEL010
  452.             If (STRING014 == "N") Then
  453.                 If (((INTEGER004 == 21) && (INTEGER013 == 21)) && (MONEY006 > 0)) Then
  454.                     STRING009 = "PUSHBJINS"
  455.                     Goto LABEL008
  456.                 Endif
  457.                 If (((INTEGER004 == 21) && (INTEGER013 == 21)) && (MONEY006 <= 0)) Then
  458.                     STRING009 = "PUSHBJ"
  459.                     Goto LABEL008
  460.                 Endif
  461.                 If (((INTEGER004 == 21) && (INTEGER013 <> 21)) && (MONEY006 > 0)) Then
  462.                     STRING009 = "NOBJINS"
  463.                     Goto LABEL008
  464.                 Endif
  465.                 If (((INTEGER004 == 21) && (INTEGER013 <> 21)) && (MONEY006 <= 0)) Then
  466.                     STRING009 = "NOBJ"
  467.                     Goto LABEL008
  468.                 Endif
  469.                 If ((INTEGER013 == 21) && (INTEGER004 <> 21)) Then
  470.                     STRING009 = "YESBJ"
  471.                     Goto LABEL008
  472.                 Endif
  473.             Endif
  474.             Return
  475.             :LABEL011
  476.             AnsiPos 3, 4
  477.             Print TSTRING006(1)
  478.             AnsiPos 52, 18
  479.             Print "@X71", Right(INTEGER004, 2)
  480.             If (STRING014 == "N") Then
  481.                 AnsiPos 69, 18
  482.                 Print "@X71", Right(INTEGER013, 2)
  483.             Else
  484.                 AnsiPos 66, 18
  485.                 Print "@X71", Right(INTEGER013, 2), " & ", Right(INTEGER006, 2)
  486.             Endif
  487.             If (STRING009 == "BUSTED") Then
  488.                 AnsiPos 50, 15
  489.                 Print "@X7CBUSTED - YOU LOSE!!!"
  490.                 MONEY002 = MONEY002 - MONEY004
  491.                 AnsiPos 46, 21
  492.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and lost @X0C", MONEY004, "@X0E."
  493.                 Return
  494.             Endif
  495.             If (STRING009 == "CBUSTED") Then
  496.                 AnsiPos 50, 15
  497.                 Print "@X7CDEALER BUSTED - YOU WIN!"
  498.                 MONEY002 = MONEY002 + MONEY004
  499.                 AnsiPos 46, 21
  500.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY004, "@X0E."
  501.                 Return
  502.             Endif
  503.             If (STRING009 == "YESBJ") Then
  504.                 AnsiPos 50, 15
  505.                 Print "@X7CBLACKJACK - YOU WIN!!!"
  506.                 MONEY002 = MONEY002 + MONEY004 * 2
  507.                 MONEY005 = MONEY004 * 2
  508.                 AdjTime 10
  509.                 AnsiPos 46, 21
  510.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY005, "@X0E."
  511.                 Return
  512.             Endif
  513.             If (STRING009 == "NOBJINS") Then
  514.                 AnsiPos 50, 15
  515.                 Print "@X7CBLACKJACK - DEALER WINS"
  516.                 MONEY002 = MONEY002 - MONEY004
  517.                 MONEY002 = MONEY002 + MONEY006 * 2
  518.                 AnsiPos 1, 21
  519.                 Print "@X0EYou wagered @X0C", MONEY006, "@X0E for insurance and won."
  520.                 AnsiPos 46, 21
  521.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and lost @X0C", MONEY004, "@X0E."
  522.                 Return
  523.             Endif
  524.             If (STRING009 == "NOBJ") Then
  525.                 AnsiPos 50, 15
  526.                 Print "@X7CBLACKJACK - DEALER WINS"
  527.                 MONEY002 = MONEY002 - MONEY004
  528.                 AnsiPos 46, 21
  529.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and lost @X0C", MONEY004, "@X0E."
  530.                 Return
  531.             Endif
  532.             If (STRING009 == "PUSHBJINS") Then
  533.                 AnsiPos 50, 15
  534.                 Print "@X7CBLACKJACK - IT'S A PUSH!!!"
  535.                 MONEY002 = MONEY002
  536.                 MONEY002 = MONEY002 + MONEY006 * 2
  537.                 MONEY005 = MONEY004
  538.                 AnsiPos 1, 21
  539.                 Print "@X0EYou wagered @X0C", MONEY006, "@X0E for insurance and won."
  540.                 AnsiPos 46, 21
  541.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY005, "@X0E."
  542.                 Return
  543.             Endif
  544.             If (STRING009 == "PUSHBJ") Then
  545.                 AnsiPos 50, 15
  546.                 Print "@X7CBLACKJACK - IT'S A PUSH!!!"
  547.                 MONEY002 = MONEY002
  548.                 MONEY005 = MONEY004
  549.                 AnsiPos 46, 21
  550.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY005, "@X0E."
  551.                 Return
  552.             Endif
  553.             If (STRING009 == "YES") Then
  554.                 AnsiPos 50, 15
  555.                 Print "@X7CYOU WIN!!!"
  556.                 MONEY002 = MONEY002 + MONEY004
  557.                 AnsiPos 46, 21
  558.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and won @X0C", MONEY004, "@X0E."
  559.                 Return
  560.             Endif
  561.             If (STRING009 == "PUSH") Then
  562.                 AnsiPos 50, 15
  563.                 Print "@X7CIT'S A PUSH"
  564.                 MONEY002 = MONEY002
  565.                 AnsiPos 46, 21
  566.                 Print "@X0EYou bet @X0C", MONEY004, "@X0E and kept your bet."
  567.                 Return
  568.             Endif
  569.             If (STRING009 == "ONEPUSH") Then
  570.                 AnsiPos 50, 15
  571.                 Print "@X7CYOU PUSHED ONE HAND"
  572.                 MONEY002 = MONEY002 - MONEY004
  573.                 MONEY005 = MONEY004 * 2
  574.                 AnsiPos 46, 21
  575.                 Print "@X0EYou bet @X0C", MONEY005, "@X0E and won @X0C", MONEY004, "@X0E."
  576.                 Return
  577.             Endif
  578.             If (STRING009 == "ONEPUSHWIN") Then
  579.                 AnsiPos 50, 15
  580.                 Print "@X7CYOU PUSHED & WON ONE HAND"
  581.                 MONEY002 = MONEY002 + MONEY004
  582.                 MONEY005 = MONEY004 * 2
  583.                 AnsiPos 46, 21
  584.                 Print "@X0EYou bet @X0C", MONEY005, "@X0E and won @X0C", MONEY004, "@X0E."
  585.                 Return
  586.             Endif
  587.             If (STRING009 == "TWOPUSH") Then
  588.                 AnsiPos 50, 15
  589.                 Print "@X7CYOU PUSHED BOTH HANDS"
  590.                 MONEY002 = MONEY002
  591.                 MONEY005 = MONEY004 * 2
  592.                 AnsiPos 46, 21
  593.                 Print "@X0EYou bet @X0C", MONEY005, "@X0E and won @X0C", MONEY005, "@X0E."
  594.                 Return
  595.             Endif
  596.             If (STRING009 == "ONEWIN") Then
  597.                 AnsiPos 50, 15
  598.                 Print "@X7CYOU WON ONE HAND"
  599.                 MONEY002 = MONEY002 + MONEY004
  600.                 MONEY005 = MONEY004 * 2
  601.                 AnsiPos 46, 21
  602.                 Print "@X0EYou bet @X0C", MONEY005, "@X0E and won @X0C", MONEY004, "@X0E."
  603.                 Return
  604.             Endif
  605.             If (STRING009 == "TWOWIN") Then
  606.                 AnsiPos 50, 15
  607.                 Print "@X7CYOU WON BOTH HANDS"
  608.                 MONEY005 = MONEY004 * 2
  609.                 MONEY002 = MONEY002 + MONEY005
  610.                 AnsiPos 46, 21
  611.                 Print "@X0EYou won @X0C", MONEY005, "@X0E."
  612.                 Return
  613.             Endif
  614.             If (STRING009 == "NO") Then
  615.                 AnsiPos 50, 15
  616.                 Print "@X7CDEALER WON"
  617.                 If (STRING013 == "HAND1") Then
  618.                     MONEY002 = MONEY002 - MONEY004
  619.                     AnsiPos 46, 21
  620.                     Print "@X0EYou bet @X0C", MONEY004, "@X0E and lost @X0C", MONEY004, "@X0E."
  621.                     Goto LABEL012
  622.                 Endif
  623.                 MONEY005 = MONEY004 * 2
  624.                 MONEY002 = MONEY002 - MONEY005
  625.                 AnsiPos 46, 21
  626.                 Print "@X0EYou bet @X0C", MONEY005, "@X0E and lost @X0C", MONEY005, "@X0E."
  627.             Endif
  628.             :LABEL012
  629.             Return
  630.             :LABEL013
  631.             INTEGER017 = INTEGER017 + 1
  632.             If (INTEGER017 == 3) Then
  633.                 INTEGER021 = 15
  634.             Endif
  635.             If (INTEGER017 == 4) Then
  636.                 INTEGER021 = 22
  637.             Endif
  638.             If (INTEGER017 == 5) Then
  639.                 INTEGER021 = 29
  640.             Endif
  641.             If (INTEGER017 == 6) Then
  642.                 INTEGER021 = 36
  643.             Endif
  644.             AnsiPos INTEGER021, 9
  645.             Print "@X0B┌─────┐"
  646.             AnsiPos INTEGER021, 10
  647.             Print "@X0B│     │"
  648.             AnsiPos INTEGER021, 11
  649.             Print "@X0B│@X80     @X0B│"
  650.             AnsiPos INTEGER021, 12
  651.             Print "@X0B│     │"
  652.             AnsiPos INTEGER021, 13
  653.             Print "@X0B└─────┘"
  654.             AnsiPos INTEGER021 + 2, 11
  655.             Print TSTRING007(INTEGER017)
  656.             Gosub LABEL019
  657.             If (INTEGER013 > 21) Then
  658.                 STRING009 = "BUSTED"
  659.                 Goto LABEL008
  660.             Endif
  661.             If (INTEGER013 == 21) Then
  662.                 STRING002 = "S"
  663.                 Goto LABEL007
  664.             Endif
  665.             Return
  666.             :LABEL014
  667.             INTEGER016 = INTEGER016 + 1
  668.             If (INTEGER016 == 3) Then
  669.                 INTEGER022 = 15
  670.             Endif
  671.             If (INTEGER016 == 4) Then
  672.                 INTEGER022 = 22
  673.             Endif
  674.             If (INTEGER016 == 5) Then
  675.                 INTEGER022 = 29
  676.             Endif
  677.             If (INTEGER016 == 6) Then
  678.                 INTEGER022 = 36
  679.             Endif
  680.             AnsiPos INTEGER022, 2
  681.             Print "@X0E┌─────┐"
  682.             AnsiPos INTEGER022, 3
  683.             Print "@X0E│     │"
  684.             AnsiPos INTEGER022, 4
  685.             Print "@X0E│@X80     @X0E│"
  686.             AnsiPos INTEGER022, 5
  687.             Print "@X0E│     │"
  688.             AnsiPos INTEGER022, 6
  689.             Print "@X0E└─────┘"
  690.             AnsiPos INTEGER022 + 2, 4
  691.             Print TSTRING006(INTEGER016)
  692.             Gosub LABEL018
  693.             If (INTEGER004 < 17) Then
  694.                 Goto LABEL014
  695.             Endif
  696.             If ((INTEGER004 > 21) && (STRING014 == "N")) Then
  697.                 STRING009 = "CBUSTED"
  698.                 Goto LABEL008
  699.             Endif
  700.             If ((INTEGER004 > 21) && (STRING014 == "Y")) Then
  701.                 Gosub LABEL009
  702.                 Goto LABEL008
  703.             Endif
  704.             Return
  705.             :LABEL015
  706.             For INTEGER018 = 1 To 12
  707.                 TINTEGER002(INTEGER018) = 0
  708.                 TINTEGER003(INTEGER018) = 0
  709.             Next
  710.             For INTEGER010 = 1 To 12
  711.                 :LABEL016
  712.                 TINTEGER002(INTEGER010) = Random(52)
  713.                 If (TINTEGER002(INTEGER010) < 1) Goto LABEL016
  714.                 For INTEGER018 = 1 To 12
  715.                     If (TINTEGER002(INTEGER010) == TINTEGER003(INTEGER018)) Goto LABEL016
  716.                 Next
  717.                 If (INTEGER010 > 1) Then
  718.                     For INTEGER023 = 1 To INTEGER010 - 1
  719.                         If (TINTEGER002(INTEGER023) == TINTEGER002(INTEGER010)) Goto LABEL016
  720.                     Next
  721.                 Endif
  722.                 TSTRING006(INTEGER010) = Mid(STRING008, TINTEGER002(INTEGER010) * 3 - 2, 3)
  723.                 If (Mid(TSTRING006(INTEGER010), 3, 1) == "") Then
  724.                     TSTRING006(INTEGER010) = "@X0C" + TSTRING006(INTEGER010)
  725.                 Endif
  726.                 If (Mid(TSTRING006(INTEGER010), 3, 1) == "") Then
  727.                     TSTRING006(INTEGER010) = "@X0B" + TSTRING006(INTEGER010)
  728.                 Endif
  729.                 If (Mid(TSTRING006(INTEGER010), 3, 1) == "") Then
  730.                     TSTRING006(INTEGER010) = "@X03" + TSTRING006(INTEGER010)
  731.                 Endif
  732.                 If (Mid(TSTRING006(INTEGER010), 3, 1) == "") Then
  733.                     TSTRING006(INTEGER010) = "@X09" + TSTRING006(INTEGER010)
  734.                 Endif
  735.                 TINTEGER014(INTEGER010) = Mid(STRING010, TINTEGER002(INTEGER010) * 2 - 1, 2)
  736.                 If (INTEGER010 == 1) Then
  737.                     AnsiPos 3, 4
  738.                     Print "@X0D ? "
  739.                 Endif
  740.                 If (INTEGER010 == 8) Then
  741.                     AnsiPos 10, 4
  742.                     Print TSTRING006(2)
  743.                 Endif
  744.                 :LABEL017
  745.                 TINTEGER003(INTEGER010) = Random(52)
  746.                 If (TINTEGER003(INTEGER010) < 1) Goto LABEL017
  747.                 For INTEGER018 = 1 To 12
  748.                     If (TINTEGER003(INTEGER010) == TINTEGER002(INTEGER018)) Goto LABEL017
  749.                 Next
  750.                 If (INTEGER010 > 1) Then
  751.                     For INTEGER023 = 1 To INTEGER010 - 1
  752.                         If (TINTEGER003(INTEGER023) == TINTEGER003(INTEGER010)) Goto LABEL017
  753.                     Next
  754.                 Endif
  755.                 TSTRING007(INTEGER010) = Mid(STRING008, TINTEGER003(INTEGER010) * 3 - 2, 3)
  756.                 If (Mid(TSTRING007(INTEGER010), 3, 1) == "") Then
  757.                     TSTRING007(INTEGER010) = "@X0A" + TSTRING007(INTEGER010)
  758.                 Endif
  759.                 If (Mid(TSTRING007(INTEGER010), 3, 1) == "") Then
  760.                     TSTRING007(INTEGER010) = "@X0B" + TSTRING007(INTEGER010)
  761.                 Endif
  762.                 If (Mid(TSTRING007(INTEGER010), 3, 1) == "") Then
  763.                     TSTRING007(INTEGER010) = "@X03" + TSTRING007(INTEGER010)
  764.                 Endif
  765.                 If (Mid(TSTRING007(INTEGER010), 3, 1) == "") Then
  766.                     TSTRING007(INTEGER010) = "@X09" + TSTRING007(INTEGER010)
  767.                 Endif
  768.                 TINTEGER015(INTEGER010) = Mid(STRING010, TINTEGER003(INTEGER010) * 2 - 1, 2)
  769.                 If (INTEGER010 == 4) Then
  770.                     AnsiPos 3, 11
  771.                     Print TSTRING007(1)
  772.                 Endif
  773.                 If (INTEGER010 == 12) Then
  774.                     AnsiPos 10, 11
  775.                     Print TSTRING007(2)
  776.                 Endif
  777.             Next
  778.             Return
  779.             :LABEL018
  780.             INTEGER004 = 0
  781.             For INTEGER010 = 1 To INTEGER016
  782.                 If (TINTEGER014(INTEGER010) > 10) Then
  783.                     INTEGER004 = INTEGER004 + 10
  784.                 Endif
  785.                 If ((TINTEGER014(INTEGER010) > 1) && (TINTEGER014(INTEGER010) <= 10)) Then
  786.                     INTEGER004 = INTEGER004 + TINTEGER014(INTEGER010)
  787.                 Endif
  788.                 If (TINTEGER014(INTEGER010) == 1) Then
  789.                     INTEGER020 = INTEGER020 + 1
  790.                     INTEGER004 = INTEGER004 + TINTEGER014(INTEGER010)
  791.                 Endif
  792.             Next
  793.             For INTEGER010 = 1 To INTEGER020
  794.                 If (INTEGER004 + 10 > 21) Then
  795.                     Break
  796.                     Continue
  797.                 Endif
  798.                 INTEGER004 = INTEGER004 + 10
  799.             Next
  800.             Return
  801.             :LABEL019
  802.             INTEGER013 = 0
  803.             For INTEGER010 = 1 To INTEGER017
  804.                 If (TINTEGER015(INTEGER010) > 10) Then
  805.                     INTEGER013 = INTEGER013 + 10
  806.                 Endif
  807.                 If ((TINTEGER015(INTEGER010) > 1) && (TINTEGER015(INTEGER010) <= 10)) Then
  808.                     INTEGER013 = INTEGER013 + TINTEGER015(INTEGER010)
  809.                 Endif
  810.                 If (TINTEGER015(INTEGER010) == 1) Then
  811.                     INTEGER019 = INTEGER019 + 1
  812.                     INTEGER013 = INTEGER013 + TINTEGER015(INTEGER010)
  813.                 Endif
  814.             Next
  815.             For INTEGER010 = 1 To INTEGER019
  816.                 If (INTEGER013 + 10 > 21) Then
  817.                     Break
  818.                     Continue
  819.                 Endif
  820.                 INTEGER013 = INTEGER013 + 10
  821.             Next
  822.             Return
  823.             :LABEL020
  824.             INTEGER006 = 0
  825.             For INTEGER010 = 7 To INTEGER024
  826.                 If (TINTEGER015(INTEGER010) > 10) Then
  827.                     INTEGER006 = INTEGER006 + 10
  828.                 Endif
  829.                 If ((TINTEGER015(INTEGER010) > 1) && (TINTEGER015(INTEGER010) <= 10)) Then
  830.                     INTEGER006 = INTEGER006 + TINTEGER015(INTEGER010)
  831.                 Endif
  832.                 If (TINTEGER015(INTEGER010) == 1) Then
  833.                     INTEGER007 = INTEGER007 + 1
  834.                     INTEGER006 = INTEGER006 + TINTEGER015(INTEGER010)
  835.                 Endif
  836.             Next
  837.             For INTEGER010 = 1 To INTEGER007
  838.                 If (INTEGER006 + 10 > 21) Then
  839.                     Break
  840.                     Continue
  841.                 Endif
  842.                 INTEGER006 = INTEGER006 + 10
  843.             Next
  844.             Return
  845.         Endif
  846.         :LABEL021
  847.         If (STRING004 == "YES") Then
  848.             If ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec())) Then
  849.                 TDATE001(INTEGER009) = "00-00-00"
  850.             Else
  851.                 TDATE001(INTEGER009) = Date()
  852.             Endif
  853.             TMONEY001(INTEGER009) = MONEY002
  854.         Else
  855.             INTEGER008 = INTEGER008 + 1
  856.             If ((U_Name() == "DEAN HUNTLEY") || (CurSec() >= SysopSec())) Then
  857.                 TDATE001(INTEGER008) = "00-00-00"
  858.             Else
  859.                 TDATE001(INTEGER008) = Date()
  860.             Endif
  861.             TSTRING003(INTEGER008) = U_Name()
  862.             TMONEY001(INTEGER008) = MONEY002
  863.         Endif
  864.         Gosub LABEL024
  865.         FOpen 0, PPEPath() + "BJ.DAT", 1, 0
  866.         FPutLn 0, INTEGER008
  867.         For INTEGER010 = 1 To INTEGER008
  868.             FPutLn 0, TDATE001(INTEGER010)
  869.             FPutLn 0, TSTRING003(INTEGER010)
  870.             FPutLn 0, TMONEY001(INTEGER010)
  871.         Next
  872.         FClose 0
  873.         Goto LABEL032
  874.         :LABEL022
  875.         FOpen 0, PPEPath() + "bj.cnf", 0, 0
  876.         FGet 0, STRING001
  877.         FGet 0, INTEGER001
  878.         FGet 0, MONEY003
  879.         FClose 0
  880.         Return
  881.         :LABEL023
  882.         If (MinLeft() <= 5) Then
  883.             AnsiPos 1, 20
  884.             Print "@X0EYou only have ", MinLeft(), " minutes left on your session."
  885.         Endif
  886.         If (MinLeft() < 2) Then
  887.             AnsiPos 1, 20
  888.             Print "@X0EI am saving your game at this point.  You only have ", MinLeft(), " minute left."
  889.             Goto LABEL021
  890.         Endif
  891.         Return
  892.         :LABEL024
  893.         INTEGER011 = 0
  894.         While (INTEGER011 == 0) Do
  895.             INTEGER011 = 1
  896.             For INTEGER012 = 1 To INTEGER008
  897.                 If (TMONEY001(INTEGER012) >= TMONEY001(INTEGER012 + 1)) Then
  898.                     Continue
  899.                 Endif
  900.                 STRING005 = TMONEY001(INTEGER012)
  901.                 TMONEY001(INTEGER012) = TMONEY001(INTEGER012 + 1)
  902.                 TMONEY001(INTEGER012 + 1) = STRING005
  903.                 STRING005 = TSTRING003(INTEGER012)
  904.                 TSTRING003(INTEGER012) = TSTRING003(INTEGER012 + 1)
  905.                 TSTRING003(INTEGER012 + 1) = STRING005
  906.                 STRING005 = TDATE001(INTEGER012)
  907.                 TDATE001(INTEGER012) = TDATE001(INTEGER012 + 1)
  908.                 TDATE001(INTEGER012 + 1) = STRING005
  909.                 INTEGER011 = 0
  910.             Next
  911.         EndWhile
  912.         Return
  913.     Endif
  914.     STRING002 = ""
  915.     STRING012 = 0
  916.     INTEGER025 = 0
  917.     INTEGER017 = 2
  918.     INTEGER024 = 8
  919.     STRING013 = "HAND1"
  920.     AnsiPos 10, 11
  921.     Print Space(3)
  922.     STRING012 = TSTRING007(2)
  923.     INTEGER025 = TINTEGER003(2)
  924.     INTEGER026 = TINTEGER015(2)
  925.     TSTRING007(2) = TSTRING007(7)
  926.     TINTEGER003(2) = TINTEGER003(7)
  927.     TINTEGER015(2) = TINTEGER015(7)
  928.     TSTRING007(7) = STRING012
  929.     TINTEGER003(7) = INTEGER025
  930.     TINTEGER015(7) = INTEGER026
  931.     AnsiPos 1, 15
  932.     Print "@X0B┌─────┐┌─────┐"
  933.     AnsiPos 1, 16
  934.     Print "@X0B│     ││     │"
  935.     AnsiPos 1, 17
  936.     Print "@X0B│@X80     @X0B││@X80     @X0B│"
  937.     AnsiPos 1, 18
  938.     Print "@X0B│     ││     │"
  939.     AnsiPos 1, 19
  940.     Print "@X0B└─────┘└─────┘"
  941.     AnsiPos 10, 11
  942.     Print TSTRING007(2)
  943.     AnsiPos 3, 17
  944.     Print TSTRING007(7)
  945.     AnsiPos 10, 17
  946.     Print TSTRING007(8)
  947.     Gosub LABEL019
  948.     Gosub LABEL020
  949.     If (INTEGER013 == 21) Then
  950.         STRING013 = "HAND2"
  951.     Endif
  952.     :LABEL025
  953.     STRING002 = ""
  954.     AnsiPos 1, 21
  955.     Print "@X0DHand1 = ", INTEGER013, "   &   @X0DHand2 = ", INTEGER006
  956.     AnsiPos 69, 7
  957.     Print "@X74", Right(MONEY004, 7)
  958.     If (TINTEGER015(1) == 1) Then
  959.         AnsiPos 1, 14
  960.         Print "@X0E", Space(43)
  961.         STRING002 = "S"
  962.         Goto LABEL007
  963.     Endif
  964.     If (STRING013 == "HAND1") Then
  965.         AnsiPos 1, 14
  966.         InputStr "What do you want to do - hand1? (H,S)", STRING002, 14, 1, "HS", 8
  967.         AnsiPos 1, 14
  968.         Print Space(43)
  969.     Else
  970.         AnsiPos 1, 20
  971.         InputStr "What do you want to do - hand2? (H,S)", STRING002, 14, 1, "HS", 8
  972.         AnsiPos 1, 20
  973.         Print Space(43)
  974.     Endif
  975.     If ((STRING002 == "H") && (STRING013 == "HAND1")) Then
  976.         INTEGER017 = INTEGER017 + 1
  977.         If (INTEGER017 == 3) Then
  978.             INTEGER021 = 15
  979.         Endif
  980.         If (INTEGER017 == 4) Then
  981.             INTEGER021 = 22
  982.         Endif
  983.         If (INTEGER017 == 5) Then
  984.             INTEGER021 = 29
  985.         Endif
  986.         If (INTEGER017 == 6) Then
  987.             INTEGER021 = 36
  988.         Endif
  989.         AnsiPos INTEGER021, 9
  990.         Print "@X0B┌─────┐"
  991.         AnsiPos INTEGER021, 10
  992.         Print "@X0B│     │"
  993.         AnsiPos INTEGER021, 11
  994.         Print "@X0B│@X80     @X0B│"
  995.         AnsiPos INTEGER021, 12
  996.         Print "@X0B│     │"
  997.         AnsiPos INTEGER021, 13
  998.         Print "@X0B└─────┘"
  999.         AnsiPos INTEGER021 + 2, 11
  1000.         Print TSTRING007(INTEGER017)
  1001.         Gosub LABEL019
  1002.         If (INTEGER013 >= 21) Then
  1003.             STRING013 = "HAND2"
  1004.         Endif
  1005.         Goto LABEL025
  1006.     Endif
  1007.     If ((STRING002 == "H") && (STRING013 == "HAND2")) Then
  1008.         INTEGER024 = INTEGER024 + 1
  1009.         If (INTEGER024 == 9) Then
  1010.             INTEGER021 = 15
  1011.         Endif
  1012.         If (INTEGER024 == 10) Then
  1013.             INTEGER021 = 22
  1014.         Endif
  1015.         If (INTEGER024 == 11) Then
  1016.             INTEGER021 = 29
  1017.         Endif
  1018.         If (INTEGER024 == 12) Then
  1019.             INTEGER021 = 36
  1020.         Endif
  1021.         AnsiPos INTEGER021, 15
  1022.         Print "@X0B┌─────┐"
  1023.         AnsiPos INTEGER021, 16
  1024.         Print "@X0B│     │"
  1025.         AnsiPos INTEGER021, 17
  1026.         Print "@X0B│     │"
  1027.         AnsiPos INTEGER021, 18
  1028.         Print "@X0B│     │"
  1029.         AnsiPos INTEGER021, 19
  1030.         Print "@X0B└─────┘"
  1031.         AnsiPos INTEGER021 + 2, 17
  1032.         Print TSTRING007(INTEGER024)
  1033.         Gosub LABEL020
  1034.         If (INTEGER006 >= 21) Then
  1035.             STRING002 = "S"
  1036.             Goto LABEL007
  1037.         Endif
  1038.         Goto LABEL025
  1039.     Endif
  1040.     If ((STRING002 == "S") && (STRING013 == "HAND1")) Then
  1041.         STRING013 = "HAND2"
  1042.         Goto LABEL025
  1043.     Endif
  1044.     If ((STRING002 == "S") && (STRING013 == "HAND2")) Then
  1045.         Goto LABEL007
  1046.     Endif
  1047.     Goto LABEL025
  1048.     :LABEL026
  1049.     AnsiPos 3, 4
  1050.     Print Space(3)
  1051.     AnsiPos 10, 4
  1052.     Print Space(3)
  1053.     AnsiPos 3, 11
  1054.     Print Space(3)
  1055.     AnsiPos 10, 11
  1056.     Print Space(3)
  1057.     AnsiPos 15, 2
  1058.     Print Space(29)
  1059.     AnsiPos 15, 3
  1060.     Print Space(29)
  1061.     AnsiPos 15, 4
  1062.     Print Space(29)
  1063.     AnsiPos 15, 5
  1064.     Print Space(29)
  1065.     AnsiPos 15, 6
  1066.     Print Space(29)
  1067.     AnsiPos 15, 9
  1068.     Print Space(29)
  1069.     AnsiPos 15, 10
  1070.     Print Space(29)
  1071.     AnsiPos 15, 11
  1072.     Print Space(29)
  1073.     AnsiPos 15, 12
  1074.     Print Space(29)
  1075.     AnsiPos 15, 13
  1076.     Print Space(29)
  1077.     AnsiPos 1, 14
  1078.     Print Space(43)
  1079.     AnsiPos 1, 15
  1080.     Print Space(43)
  1081.     AnsiPos 1, 16
  1082.     Print Space(43)
  1083.     AnsiPos 1, 17
  1084.     Print Space(43)
  1085.     AnsiPos 1, 18
  1086.     Print Space(43)
  1087.     AnsiPos 1, 19
  1088.     Print Space(43)
  1089.     AnsiPos 1, 20
  1090.     Print Space(43)
  1091.     AnsiPos 1, 21
  1092.     Print Space(80)
  1093.     Return
  1094.     :LABEL027
  1095.     If (FileInf(PPEPath() + "bj.DAT", 1) <> 1) Then
  1096.         FCreate 0, PPEPath() + "bj.DAT", 2, 0
  1097.         INTEGER008 = 0
  1098.         FPutLn 0, INTEGER008
  1099.         FClose 0
  1100.     Else
  1101.         FOpen 0, PPEPath() + "bj.DAT", 0, 0
  1102.         FGet 0, INTEGER008
  1103.         For INTEGER010 = 1 To INTEGER008
  1104.             FGet 0, TDATE001(INTEGER010)
  1105.             FGet 0, TSTRING003(INTEGER010)
  1106.             FGet 0, TMONEY001(INTEGER010)
  1107.             TSTRING003(INTEGER010) = RTrim(TSTRING003(INTEGER010), " ")
  1108.             TDATE001(INTEGER010) = RTrim(TDATE001(INTEGER010), " ")
  1109.             If (TDATE001(INTEGER010) == Date()) Then
  1110.                 If (TSTRING003(INTEGER010) == U_Name()) Then
  1111.                     STRING002 = "NO"
  1112.                     FClose 0
  1113.                     Goto LABEL028
  1114.                 Endif
  1115.                 Continue
  1116.             Endif
  1117.             If (TSTRING003(INTEGER010) == U_Name()) Then
  1118.                 MONEY002 = TMONEY001(INTEGER010)
  1119.                 INTEGER009 = INTEGER010
  1120.                 STRING004 = "YES"
  1121.             Endif
  1122.         Next
  1123.         FClose 0
  1124.     Endif
  1125.     :LABEL028
  1126.     If (STRING002 == "NO") Then
  1127.         AnsiPos 1, 20
  1128.         Print "Sorry, you have already played once today....."
  1129.         AnsiPos 1, 21
  1130.         Wait
  1131.         End
  1132.     Endif
  1133.     If (MONEY002 < MONEY003) Then
  1134.         MONEY002 = MONEY003
  1135.     Endif
  1136.     Return
  1137.     :LABEL029
  1138.     Cls
  1139.     PrintLn "@X0C█████  █      ████   █████  █  █     █  ████   █████ █  █   @X0B┌─────┐"
  1140.     PrintLn "@X0D█    █ █     █    █ █       █ █      █ █    █ █      █ █    @X0B│@X0C   @X0B│ ┌─────┐"
  1141.     PrintLn "@X05█████  █     ██████ █       ██       █ ██████ █      ██     @X0B│  @X04J  @X0B│ │@X0C   @X0B│"
  1142.     PrintLn "@X0D█    █ █     █    █ █       █ █  █   █ █    █ █      █ █    @X0B│@X0C   @X0B│ │  @X04A  @X0B│"
  1143.     PrintLn "@X0C█████  █████ █    █  █████  █  █  ███  █    █  █████ █  █   @X0B└─────┘ @X0B│@X0C   @X0B│"
  1144.     PrintLn "@X0D                                                                    @X0B└─────┘"
  1145.     PrintLn "@X0ACopyright (c) 1994 Tin Shack Software"
  1146.     PrintLn 
  1147.     PrintLn 
  1148.     PrintLn "@X0E     NAMES                         HIGH SCORE          LAST PLAY"
  1149.     PrintLn "@X0C     ──────────────────────────────────────────────────────────────@X0E"
  1150.     For INTEGER010 = 1 To 5
  1151.         AnsiPos 1, INTEGER010 + 11
  1152.         Print "@X05     ", Left(ReadLine(PPEPath() + "bj.dat", INTEGER010 * 3), 25)
  1153.         AnsiPos 25, INTEGER010 + 11
  1154.         Print "@X05     ", Right(ReadLine(PPEPath() + "bj.dat", INTEGER010 * 3 + 1), 16)
  1155.         AnsiPos 50, INTEGER010 + 11
  1156.         Print "@X05     ", Right(ReadLine(PPEPath() + "bj.dat", INTEGER010 * 3 - 1), 9)
  1157.     Next
  1158.     PrintLn 
  1159.     PrintLn 
  1160.     Return
  1161.     :LABEL030
  1162.     Cls
  1163.     PrintLn 
  1164.     PrintLn "@X01            @X71┌────────────────────────────────────────────────────┐@X00"
  1165.     PrintLn "@X01            @X78│                                                    @X71│@X00"
  1166.     PrintLn "@X01            @X78│ @X74             UNREGISTERED version                  @X71│@X00"
  1167.     PrintLn "@X01            @X78│                                                    @X71│@X00"
  1168.     PrintLn "@X01            @X78│ @X74             BLACKJACK V(1.0)                      @X71│@X00"
  1169.     PrintLn "@X01            @X78│                                                    @X71│@X00"
  1170.     PrintLn "@X01            @X78│                                                    @X71│@X00"
  1171.     PrintLn "@X01            @X78│ @X74  You can register me for $10 - refer to           @X71│@X00"
  1172.     PrintLn "@X01            @X78│ @X74  the documentation supplied with the program.     @X71│@X00"
  1173.     PrintLn "@X01            @X78│                                                    @X71│@X00"
  1174.     PrintLn "@X01            @X78└────────────────────────────────────────────────────@X71┘@X00"
  1175.     PrintLn "@X01"
  1176.     PrintLn "@X0ACopyright (c) 1994 Tin Shack Software"
  1177.     AnsiPos 1, 18
  1178.     PrintLn "Please wait...."
  1179.     Delay 180
  1180.     Return
  1181.     :LABEL031
  1182.     Cls
  1183.     AnsiPos 25, 1
  1184.     Print "@X0DB  L  A  C  K  J  A  C  K"
  1185.     Newline
  1186.     PrintLn "@X0EThe object of the game is to have cards whose numerical value totals"
  1187.     PrintLn "21, or as close to 21 as possible without exceeding 21.  If the player's"
  1188.     PrintLn "first 2 cards count exactly 21  - that is, if they are a face card or"
  1189.     PrintLn "ten and an ace - player has a BLACKJACK and wins immediately, unless"
  1190.     PrintLn "dealer also has a BLACKJACK."
  1191.     PrintLn 
  1192.     PrintLn "                            Rules:"
  1193.     PrintLn "Dealer will not hit on any hand equal to or higher than 17.  If dealer busts"
  1194.     PrintLn "then you automatically win.  If you bust your hand dealer automatically wins."
  1195.     PrintLn 
  1196.     PrintLn "                            Winnings:"
  1197.     PrintLn "When the player has BLACKJACK, the dealer pays 2 times the amount of the"
  1198.     PrintLn "player's bet.  If player's hand equals dealer's hand player wins amount of bet."
  1199.     PrintLn 
  1200.     PrintLn "                            SPLIT:"
  1201.     PrintLn "If the player's first 2 cards are the same - as in 2 fives, or 2 tens"
  1202.     PrintLn "and player wishes to SPLIT, then players original bet is doubled - same"
  1203.     PrintLn "bet for both hands."
  1204.     More
  1205.     PrintLn "                            Playing:"
  1206.     PrintLn "Before the cards are dealt a bet must be made.  Player may bet any amount"
  1207.     PrintLn "($1.00 minimum) but not to exceed their amount available.  Once bet is placed"
  1208.     PrintLn "the cards will be shuffled and dealt.  Only one of the dealer's cards"
  1209.     PrintLn "will be visable to the player.  At this time, depending on the player's "
  1210.     PrintLn "hand, player can either (h)it, (s)tay, (d)ouble down or (sp)lit."
  1211.     PrintLn 
  1212.     PrintLn "                          Double Down:"
  1213.     PrintLn "Double down allows the player to double their bet and to be hit with only"
  1214.     PrintLn "one card, which hopefully will be equal to 21."
  1215.     PrintLn 
  1216.     PrintLn "                            Insurance:"
  1217.     PrintLn "After the cards are dealt and the dealer has an ACE showing you will be asked"
  1218.     PrintLn "if you wish to buy insurance.  If you choose to buy insurance, you can buy up"
  1219.     PrintLn "to $5.00 worth.  If the dealers hand does not turn out to be 21 then your"
  1220.     PrintLn "insurance will be displayed in () to be deducted at the end of that hand. "
  1221.     PrintLn "If dealer turns up 21 you win 2 to 1 on your insurance but you still lose your"
  1222.     PrintLn "original bet."
  1223.     PrintLn "@X8CNote: @X0Efor every BLACKJACK you get, you'll get an extra 10 minutes"
  1224.     PrintLn "added to your session."
  1225.     PrintLn "                   End of instructions/rules"
  1226.     Wait
  1227.     Goto LABEL001
  1228.     :LABEL032
  1229.     STRING017 = Time()
  1230.     STRING016 = "Ended BLACKJACK at "
  1231.     Log STRING016 + STRING017, 1
  1232.     If (INTEGER001 <> 942702) Then
  1233.         Gosub LABEL030
  1234.         AnsiPos 1, 21
  1235.         Wait
  1236.     Else
  1237.         Gosub LABEL029
  1238.         AnsiPos 1, 21
  1239.         Print Space(30)
  1240.         AnsiPos 1, 21
  1241.         Wait
  1242.     Endif
  1243.     End
  1244.  
  1245. ;------------------------------------------------------------------------------
  1246. ;
  1247. ; Usage report (before postprocessing)
  1248. ;
  1249. ; ■ Statements used :
  1250. ;
  1251. ;    2       End
  1252. ;    8       Cls
  1253. ;    1       More
  1254. ;    7       Wait
  1255. ;    268     Goto 
  1256. ;    225     Let 
  1257. ;    167     Print 
  1258. ;    68      PrintLn 
  1259. ;    166     If 
  1260. ;    1       DispFile 
  1261. ;    1       FCreate 
  1262. ;    4       FOpen 
  1263. ;    6       FClose 
  1264. ;    7       FGet 
  1265. ;    8       FPutLn 
  1266. ;    1       GetUser
  1267. ;    1       AdjTime 
  1268. ;    2       Log 
  1269. ;    8       InputStr 
  1270. ;    2       InputYN 
  1271. ;    25      Gosub 
  1272. ;    30      Return
  1273. ;    2       Delay 
  1274. ;    6       Newline
  1275. ;    4       InputText 
  1276. ;    178     AnsiPos 
  1277. ;
  1278. ;
  1279. ; ■ Functions used :
  1280. ;
  1281. ;    23      *
  1282. ;    84      +
  1283. ;    18      -
  1284. ;    116     ==
  1285. ;    7       <>
  1286. ;    31      <
  1287. ;    39      <=
  1288. ;    39      >
  1289. ;    41      >=
  1290. ;    160     !
  1291. ;    84      &&
  1292. ;    23      ||
  1293. ;    18      Mid()
  1294. ;    1       Left()
  1295. ;    14      Right()
  1296. ;    41      Space()
  1297. ;    2       RTrim()
  1298. ;    2       Random()
  1299. ;    3       Date()
  1300. ;    2       Time()
  1301. ;    8       U_Name()
  1302. ;    2       YesChar()
  1303. ;    10      PPEPath()
  1304. ;    3       ReadLine()
  1305. ;    5       SysopSec()
  1306. ;    5       CurSec()
  1307. ;    6       MinLeft()
  1308. ;    1       S2I()
  1309. ;    1       FileInf()
  1310. ;
  1311. ;------------------------------------------------------------------------------
  1312. ;
  1313. ; Analysis flags : As
  1314. ;
  1315. ; A - Adjust online time remaining ■ 5
  1316. ;     Program modify the amount of online time remaining, this may
  1317. ;     be a way to bypass time limits
  1318. ;     ■ Search for : ADJTIME
  1319. ;
  1320. ; s - Sysop level access ■ 5
  1321. ;     Program is reading the sysop access level, this may be normal
  1322. ;     but still it is very suspect. It is the best way to give a user
  1323. ;     all priviledges. Check!
  1324. ;     ■ Search for : SYSOPSEC()
  1325. ;
  1326. ;------------------------------------------------------------------------------
  1327. ;
  1328. ; Postprocessing report
  1329. ;
  1330. ;    16      For/Next
  1331. ;    1       While/EndWhile
  1332. ;    143     If/Then or If/Then/Else
  1333. ;    0       Select Case
  1334. ;
  1335. ;------------------------------------------------------------------------------
  1336. ;                 AEGiS Corp - Break the routines, code against the machines!
  1337. ;------------------------------------------------------------------------------
  1338.